home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / DiskUtil / Crunch / XPK / DOCS / IMPL.DOC < prev    next >
Text File  |  1992-11-02  |  4KB  |  99 lines

  1.                                     IMPL
  2.              A LZ77 variant supporting various compression modes
  3.                                 Version 1.00
  4.                        Copyright 1992 Peter Struijk
  5.  
  6.  
  7.  
  8.                             License/Disclaimer
  9.                             ------------------
  10.  
  11.     This library may be freely distributed with the XPK compression
  12. package, as long as it is kept in its original, complete, and unmodified
  13. form.  It may not be distributed by itself or in a commercial package of
  14. any kind without my permission.
  15.  
  16.     This program is distributed in the hope that it will be useful, but
  17. WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  18. or FITNESS FOR A PARTICULAR PURPOSE.
  19.  
  20.  
  21.  
  22.                                 Description
  23.                                 -----------
  24.  
  25.     This XPK sub-library uses basically the same algorithm as found in the
  26. Imploder, but without the specifics needed for compressing self-contained
  27. executables.
  28.  
  29. A quote from the Imploder 4.0 technical manual says it all :-)
  30.  
  31. IMPL does LZ77 like compression with a, per mode, static Huffman like coding
  32. step on the various parts of the skip, offset and length tuples.  Due to the
  33. efficient encoding, a tuple can require less than 12 bits, and thus strings of
  34. 2 bytes length and up are encodable with a decent gain (given small Huffman
  35. patterns corresponding to likely circumstances).
  36.  
  37.  
  38.     Following is a table, listing some comparative statistics for executables,
  39. for all compression modes, using a xpk chunk size of 64K.  These were
  40. generated by xBench on the standard XPK benchmark system (A3000/25 with SCRAM,
  41. using the AmigaVision executable as data).  Note that memory requirements do
  42. not include xpkmaster.library's buffers.  The 2nd number indicates the memory
  43. needed using the non-turbo mode, which automatically kicks in if there's
  44. insufficient memory available.  Thanks to Urban Dominik Mueller for providing
  45. this information.
  46.  
  47.  
  48. Method  Mode    Packing  Unpacking  Packing  Unpacking  Compression  Description
  49.                 Memory    Memory     Speed     Speed       Ratio
  50. ------ -------  -------  ---------  -------  ---------  -----------  -----------
  51.  IMPL   0..10   300K/0K     0K      29 K/s    360 K/s      34.8%      0.10*max
  52.  IMPL  11..30   350K/0K     0K      27 K/s    332 K/s      39.8%      0.30*max
  53.  IMPL  31..50   400K/0K     0K      20 K/s    314 K/s      43.3%      0.50*max
  54.  IMPL  51..75   425K/0K     0K      14 K/s    300 K/s      44.0%      0.75*max
  55.  IMPL  76..98   450K/0K     0K       8 K/s    292 K/s      44.2%      1.00*max
  56.  IMPL  99..100  450K/0K     0K       6 K/s    291 K/s      44.3%      adaptive
  57.  
  58.  
  59.     The default compression mode is 100 which means that the actual
  60. compression mode used depends on the chunksize.  The default chunksize is 64K.
  61. In general, this mode produces the best compression ratio, although the mode
  62. range 76..98 (1.00*max) will sometimes produce better results.
  63.  
  64. What does this 1.00*max description mean?  First the maximum allowable
  65. compression mode, for a particular chunksize, is computed.  Then this maximum
  66. mode is scaled down by a factor depending on the chosen compression mode
  67. (<99).  The above table is valid only when using the default chunksize.  If a
  68. program uses a smaller chunksize the compression speeds will go up, if it uses
  69. a larger chunksize compression ratios will improve somewhat.
  70.  
  71.     The current version of xpkIMPL.library will, by default, react to a BREAK
  72. signal (CTRL-C) while compressing.  Compressing a chunk (especially on
  73. unaccelerated amiga's) can take quite a bit time, so allowing the user to
  74. break-off compression is useful.  For now, it's not possible to turn this
  75. feature off!
  76.  
  77. Goodluck,
  78. Peter.
  79.  
  80.  
  81.                               Version History
  82.                               ---------------
  83.  
  84. 0.01  Well known Imploder compression algorithm now included in a xpk sublibrary.
  85. 0.19  Improved robustness. Released with xpk 2.4.
  86. 1.00  Much needed documentation added. ;-) Released with xpk 2.5.
  87.  
  88.  
  89.  
  90.                               Contact Address
  91.                               ---------------
  92.  
  93.     Peter Struijk
  94.     Veulenkamp 28
  95.     2623 XD  DELFT
  96.     The Netherlands
  97.  
  98.     winfjmf@dutiws.twi.tudelft.nl
  99.